Combining Formal Specifications with Design by Contract
نویسندگان
چکیده
In this paper, we present an approach to the object-oriented software development which is based on: i) automatic generation of a throwaway prototype from the initial specification in a formal, declarative, object-oriented specification language, ii) validation of user requirements and refinement of the specification by using this prototype, and iii) automatic translation from the validated specification types to programming classes including the semantics of the formal specification by means of assertions. The last step is achieved by using an object-oriented implementation language supporting Eiffel-like assertions and the “Design by Contract” technique; therefore, these classes force the first evolutionary prototype (that will evolve to the final software) to be formally consistent with the validated specification. This approach is supported by a high level CARE (Computer-Aided Requirements Engineering) tool.
منابع مشابه
XCD – Simple, Modular, Formal Software Architectures
Connector-Centric Design (XCD) is a new approach for specifying software architectures that focuses on the use of complex connectors. In XCD simple interconnection mechanisms like procedure-calls, event-buses, etc. are abstracted and components take a second place. XCD aids the clear separation in a modular manner of the highlevel functional, interaction, and control system behaviour, thus incr...
متن کاملDesign by contract approach to test generation for EFSMs using GA
Design by contract approach prescribes that developer should define formal and verifiable interface specifications for software components and makes it possible to automate process of software testing. We propose to adapt this approach for Extended Finite State Machines (EFSMs), which are often used in model-based development and for modeling VHDL specifications. This paper proposes an approach...
متن کاملA Methodology for Writing Class Contracts
One of the principles of Design by Contract is that contracts for software components must be written in a declarative way, using a formal, mathematically founded notation. When we apply the Design by Contract methodology in a naive and straightforward way, we risk ending up with unwanted duplication. In this paper, we describe a methodology for writing class contracts that avoids specification...
متن کاملContract Specification of Pipelined Designs: Application to Testbench Automation
In this paper we introduce a novel approach to formal specification of pipelined designs. The approach is based on contract specifications of pipe stages extended by a mechanism of temporal binding. Contract specifications describe the pipeline behavior in the form of preconditions and postconditions of pipe stages, while temporal binding combines specifications of separated stages into a co-op...
متن کاملTowards Monitoring-Oriented Programming: A Paradigm Combining Specification and Implementation
With the explosion of software size, checking conformance of implementation to specification becomes an increasingly important but also hard problem. Current practice based on ad-hoc testing does not provide correctness guarantees, while highly confident traditional formal methods like model checking and theorem proving are still too expensive to become common practice. In this paper we present...
متن کامل